home *** CD-ROM | disk | FTP | other *** search
- /* Patch emu object V1.2 */
- /* © by Stefan Haubenthal 1995/96 */
- /* A 030/25 takes 187 seconds */
- /* Chamäleon II:
-
- AUTOREN
- Thomas Wieger & Thorsten Deuter
-
- © MAXON Computer GmbH 1991
- Industriestraße 26
- 65760 Eschborn
- Germany
- Telephone: +49 6196 481811
- FAX: +49 6196 41885
- E-Mail: info@maxon.pfm-mainz.de
-
- (Don't move VBR) */
- call EMU
- say
- call close file
- call open(file,"MI")
- call patch(pos("00be"x,readch(file,65535))-1,"00bc"x)
- exit
-
- EMU:
- name="EMU.OBJ"
- len=28504 /* 35000 */
- key="BW"
- call open in,name
- call open out,"t:"name,W
- call code(1)
- file=out
- call patch(x2d(580),"888"x)
- call close out
- call close in
-
- key="BW"
- call open in,"t:"name
- call open out,name,W
- /*call code(0)*/
- queue "delete >nil: t:"name
-
- CODE:
- if arg(1)=1 then exp="key=reverse(bitxor(word,reverse(key)))" /* decode */
- else exp="key=reverse(bitxor(word,bitxor(key,reverse(key))))"
- do len%2
- word=readch(in,2)
- call writech out,bitxor(word,key)
- interpret exp
- end
- return
-
- PATCH:
- parse arg position,data
- if position<0 then exit 10
- call seek(file,position,'B')
- say c2x(readch(file,length(data)))
- call seek(file,-length(data))
- call writech(file,data)
- call seek(file,-length(data))
- say c2x(readch(file,length(data)))
- return
-